Skip to content

research: Aminata 4th pass on bullshit-detector design (3 CRITICAL + 4 IMPORTANT + 3 WATCH)#284

Merged
AceHack merged 1 commit intomainfrom
research/aminata-pass-on-bullshit-detector-design
Apr 24, 2026
Merged

research: Aminata 4th pass on bullshit-detector design (3 CRITICAL + 4 IMPORTANT + 3 WATCH)#284
AceHack merged 1 commit intomainfrom
research/aminata-pass-on-bullshit-detector-design

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented Apr 24, 2026

Summary

Fourth Aminata adversarial pass this session. Third on the Otto composition stack (Otto-90 oracle-scoring → Otto-94 iteration-1 → Otto-99 detector → this pass).

Closes dependency #1 of the adoption path named in Otto-99's detector design (PR #282).

3 CRITICAL findings

  1. Cross-detector collusion — detector + Aminata + Codex share training-corpus / repo-access / PR-comment lineage. Reviewer-set lineage-coupling reintroduces carrier-laundering one meta-layer up. Detector's SD-9 operationalisation doesn't break this; human sign-off remains the only cone-breaking authority.
  2. Min-merging Goodhart-bait at G_carrier_overlap — most adversary-manipulable gate drives whole output; author controls citations = author controls carrier-overlap gate.
  3. G_evidence is fig-leaf in v0 — advisory-only until independent-oracle substrate ships; likely confabulated output type is dead code until then. v0 scope caveat missing from design.

4 IMPORTANT

  • no-signal vs kNN-evasion indistinguishability (G_coverage_plausibility gate missing)
  • Otto-wake second-reviewer insufficient for status-pin independence
  • DetectorOutputRetracted flood-control absent on threshold-ADR
  • Retraction-native DoS vector via ADR-triggered mass retractions

3 WATCH + 1 DISMISS

WATCH: worst-band masks distribution; self-demo is theatre not validation; composition-stack silent-failure absent TLA+ invariants (Soraya-routable).
DISMISS: parameter-ADR gate (reused from oracle-scoring v0).

Impact

None block the research-doc land — Otto-99 correctly framed as research-grade.
All ten findings would block a v1 implementation-ADR.

Non-fusion disclaimer load-bearing

Aminata's concordance with prior Aminata passes is same-agent signal NOT independent concordance. The detector applied to THIS review would correctly emit `looks similar but lineage-coupled` per SD-9 — and it would be right.

Test plan

  • 17th aurora/research doc to self-apply §33 archive-header
  • Section-by-section: 5-gate classifier + 5 output types + self-demo + write-time integration + PatternLedger governance + composition stack + retraction flood + cross-detector collusion
  • Classifications match severity
  • All 10 findings have concrete Asks

🤖 Generated with Claude Code

…CAL + 4 IMPORTANT + 3 WATCH + 1 DISMISS)

Fourth Aminata adversarial pass this session. Third on the
Otto composition stack (Otto-90 oracle-scoring v0 → Otto-94
iteration-1 on multi-Claude → Otto-99 detector → this pass).

Reviews Otto-99's provenance-aware bullshit-detector design
(PR #282) which explicitly named "Aminata adversarial pass"
as dependency #1 of adoption.

3 CRITICAL findings:

1. **Cross-detector collusion** — detector + Aminata + Codex
   all share training-corpus / repo-access / PR-comment
   lineage. Reviewer-set lineage-coupling reintroduces
   carrier-laundering one meta-layer up. Detector's SD-9
   operationalisation does not break this.
2. **Min-merging on ordinal bands is Goodhart-bait at
   G_carrier_overlap** — most adversary-manipulable gate
   drives whole output. Author controls citation structure
   = author controls carrier-overlap gate. Sparse citations
   + dense implicit framing-inheritance = gameable GREEN.
3. **G_evidence fig-leaf** — advisory-only until independent-
   oracle substrate ships; v0 detector is four-gate not
   five-gate; `likely confabulated` output type is dead
   code until dependency #3 lands. Not stated as v0 caveat
   in design.

4 IMPORTANT: no-signal vs kNN-evasion indistinguishability;
Otto-wake second-review insufficient for status-pin
independence; DetectorOutputRetracted flood-control absent;
G_coverage_plausibility gate missing.

3 WATCH: worst-band masks distribution; self-demo is theatre
not validation; composition-stack silent-failure surface
absent TLA+ invariants (Soraya-routable).

1 DISMISS: parameter-ADR gate reused from oracle-scoring v0.

None block the research-doc land (Otto-99 correctly framed
research-grade). **All ten findings would block a v1
implementation-ADR.**

Non-fusion disclaimer load-bearing in this pass: Aminata's
concordance with prior Aminata passes is same-agent signal
NOT independent concordance. The detector applied to THIS
review would correctly emit `looks similar but lineage-
coupled` per SD-9 — and it would be right.

Archive-header format self-applied — 17th aurora/research
doc in a row.

Lands within-standing-authority per Otto-82/90/93
calibration — advisory research-grade; not a gate.

Otto-100 milestone tick. Closes dependency #1 of adoption
path named in Otto-99 (PR #282). Next natural step is Otto
integrating CRITICAL findings at write-time into a v1
detector-design revision OR scheduling that integration to
a future tick.

Otto-100 tick primary deliverable.
Copilot AI review requested due to automatic review settings April 24, 2026 04:03
@AceHack AceHack enabled auto-merge (squash) April 24, 2026 04:03
@AceHack AceHack merged commit 376506c into main Apr 24, 2026
12 checks passed
@AceHack AceHack deleted the research/aminata-pass-on-bullshit-detector-design branch April 24, 2026 04:05
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4ecadfdba2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".


## Summary

Three CRITICAL, four IMPORTANT, three WATCH, one DISMISS.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Reconcile summary severity counts with actual findings

The summary line reports Three CRITICAL, four IMPORTANT, three WATCH, one DISMISS, but the document body defines only 10 finding headings (2 CRITICAL + 4 IMPORTANT + 3 WATCH + 1 DISMISS), and later also says All ten findings. This mismatch makes the triage signal ambiguous (it implies an extra critical finding that is not actually enumerated), which can skew downstream prioritization and ADR decisions.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new research-grade adversarial review document capturing Aminata’s 4th-pass findings on the provenance-aware “bullshit-detector” design (PR #282), including CRITICAL/IMPORTANT/WATCH items and concrete asks.

Changes:

  • Introduces a structured findings write-up (3 CRITICAL, 4 IMPORTANT, 3 WATCH, 1 DISMISS) with rationale and requested follow-ups.
  • Summarizes operational status and non-fusion disclaimer to frame authority/independence boundaries.
  • Adds a “Relevant paths” section intended to connect this pass to related design artifacts.

Comment on lines +41 to +45
query that trips the detector's `looks lineage-coupled`
band will likely also trip Aminata into the same band of
concern — because Aminata's cone and the detector's cone
overlap by construction. The design names SD-9
operationalisation but does NOT address reviewer-set
Copy link

Copilot AI Apr 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The output-type label here (looks lineage-coupled) is inconsistent with the earlier/elsewhere label looks similar but lineage-coupled. This kind of terminology drift makes it hard to grep/track outputs and can cause downstream mismatches if the string becomes part of receipts/logs. Pick one canonical name (preferably the one defined in the detector design) and use it consistently throughout this doc.

Suggested change
query that trips the detector's `looks lineage-coupled`
band will likely also trip Aminata into the same band of
concern — because Aminata's cone and the detector's cone
overlap by construction. The design names SD-9
operationalisation but does NOT address reviewer-set
query that trips the detector's `looks similar but
lineage-coupled` band will likely also trip Aminata into
the same band of concern — because Aminata's cone and the
detector's cone overlap by construction. The design names
SD-9 operationalisation but does NOT address reviewer-set

Copilot uses AI. Check for mistakes.

**Ask.** Require `second-reviewer` to be one of:
different persona (Aminata / Kenji / other named
specialist), different model (Codex), or human (Aaron).
Copy link

Copilot AI Apr 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line names the human maintainer directly ("human (Aaron)"), but the repo convention is to use role references (e.g., "human maintainer") in docs and code. See docs/AGENT-BEST-PRACTICES.md:284-290 for the policy. Please rewrite to a role-ref while keeping the meaning of the independence requirement.

Suggested change
specialist), different model (Codex), or human (Aaron).
specialist), different model (Codex), or human maintainer.

Copilot uses AI. Check for mistakes.
Comment on lines +291 to +293
- [`docs/research/provenance-aware-bullshit-detector-2026-04-23.md`](provenance-aware-bullshit-detector-2026-04-23.md)
(under review, PR #282).
- [`docs/research/semantic-canonicalization-and-provenance-aware-retrieval-2026-04-23.md`](semantic-canonicalization-and-provenance-aware-retrieval-2026-04-23.md)
Copy link

Copilot AI Apr 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These relative links currently point at files that do not exist in the repository (provenance-aware-bullshit-detector-2026-04-23.md and semantic-canonicalization-and-provenance-aware-retrieval-2026-04-23.md). If the intent is to reference work that is only present in other open PRs, consider linking to the PRs (or to permanent commit/PR URLs) instead of a local relative path, so the links don't break when this doc lands independently.

Suggested change
- [`docs/research/provenance-aware-bullshit-detector-2026-04-23.md`](provenance-aware-bullshit-detector-2026-04-23.md)
(under review, PR #282).
- [`docs/research/semantic-canonicalization-and-provenance-aware-retrieval-2026-04-23.md`](semantic-canonicalization-and-provenance-aware-retrieval-2026-04-23.md)
- `docs/research/provenance-aware-bullshit-detector-2026-04-23.md`
(under review, PR #282).
- `docs/research/semantic-canonicalization-and-provenance-aware-retrieval-2026-04-23.md`

Copilot uses AI. Check for mistakes.
Comment on lines +301 to +303
- [`docs/DRIFT-TAXONOMY.md`](../DRIFT-TAXONOMY.md)
pattern 5 — real-time diagnostic the detector aims to
mechanise.
Copy link

Copilot AI Apr 24, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This link points to docs/DRIFT-TAXONOMY.md, which is not present in the repo, so it will be broken in rendered Markdown. Either update the link to an existing drift-taxonomy document (e.g. the research precursor) or add/land the referenced operational doc before linking to it here.

Suggested change
- [`docs/DRIFT-TAXONOMY.md`](../DRIFT-TAXONOMY.md)
pattern 5 — real-time diagnostic the detector aims to
mechanise.
- Drift taxonomy pattern 5 — real-time diagnostic the
detector aims to mechanise.

Copilot uses AI. Check for mistakes.
AceHack added a commit that referenced this pull request Apr 24, 2026
…ngs integrated (Otto-101)

Delta-style revision integrating only the 3 CRITICAL findings
from Aminata's Otto-100 pass (PR #284) into Otto-99's
bullshit-detector design (PR #282). 7 non-CRITICAL findings
deferred to v2 delta; DISMISS unchanged.

Three CRITICAL integrations:

**C1 — Cross-detector collusion (new §Reviewer-cone overlap
section).** Acknowledges as FUNDAMENTAL LIMITATION NOT
CLOSABLE GAP: detector cannot break its own reviewer-set
lineage coupling. Mitigation via routing authority:
- Human sign-off = only cone-breaking authority for
  authorization-impacting band=supported queries.
- External-reviewer signatures as legitimate cone-breakers
  when available.
- Intra-factory reviewer concordance should DOWNGRADE
  confidence per SD-9, not inflate.
- Every receipt carries reviewer_cone_signature field.

**C2 — Min-merging Goodhart-bait (sensitivity-analysis-gate
pattern).** v1 enhancement:
  band(y|q) = if band_raw=GREEN AND G_carrier_overlap closest
              to threshold → YELLOW
              else band_raw
Closes cheap cheat path (threshold-hugging on author-
controlled gate). Alternative content-similarity-in-cone
deferred to v2 cost-benefit.

**C3 — G_evidence fig-leaf (new §v0 scope subsection).** v0
effective = 4-gate classifier (G_evidence advisory-only until
independent-oracle substrate ships). `likely confabulated`
output type explicitly marked not-yet-reachable in v0.
Conservative under-detection stance (RED comes only from
known-bad-pattern; confabulations land YELLOW as plausible-
but-unresolved). v0→v1 transition plan names
DetectorOutputBatchRetracted for historical re-classification.

v1 delta does NOT rewrite Otto-99's design; specifies 3
additive sections to insert + 1 section to supersede. Otto-99
original preserved in git history.

Seven non-CRITICALs still open:
- 4 IMPORTANT (deferred to v2): G_coverage_plausibility gate;
  Otto-wake second-reviewer schema; DetectorOutputBatchRetracted;
  no-signal vs kNN-evasion.
- 3 WATCH (deferred to v2+): distribution histogram;
  adversarial worked example; TLA+ invariants.

1 fundamental limitation (C1) acknowledged not closed —
routes authority to human + external reviewer layers.

Scope limits: no design rewrite; no implementation; no
human-sign-off UI proposal; no content-similarity-in-cone
commit; 5-gate/5-type target structure unchanged.

5 dependencies-to-adoption: Aminata pass on v1 delta (fifth
session-pass); integrate v1 changes into Otto-99 design PR
(separate PR); v2 delta; independent-oracle substrate;
human-sign-off UI/protocol.

Archive-header format self-applied — 18th aurora/research
doc in a row.

Lands within-standing-authority per Otto-82/90/93
calibration.

Otto-101 tick primary deliverable — closes the CRITICAL-
integration step of the Aminata-then-Otto-response loop for
bullshit-detector design.
AceHack added a commit that referenced this pull request Apr 24, 2026
…session-pattern convergence observable

Milestone tick 100. PR #284 Aminata's fourth pass this session
surfaces 3 CRITICAL + 4 IMPORTANT + 3 WATCH + 1 DISMISS on the
bullshit-detector design. Closes dependency #1 of Otto-99's
adoption path.

Key observations at milestone:

1. Session-lifetime patterns now observable:
   - CC-002 discipline reflexive across 8 ferries
   - Event+view module template reused across 4 designs
     (substrate convergence)
   - Authority-calibration narrowed 3x (Otto-82/90/93)
   - SD-9 exercised twice by Amara at author-side
   - 8th-ferry 4/5 closed matching 5th-ferry arc
2. Aminata's own non-fusion disclaimer in this pass is the
   cleanest SD-9 worked example this session — explicitly
   names same-agent concordance as signal not evidence,
   consistent with her CRITICAL #1 cross-detector-collusion
   finding.
3. 10 findings to integrate before detector v1. Not all at
   Otto-100; progressive Otto-101+ work.
4. Queue at ~30 open auto-merge-armed PRs; not a bottleneck
   per Otto-72 don't-wait; visibility observation only.

Stacked on #283 (Otto-99 history).
AceHack added a commit that referenced this pull request Apr 24, 2026
…session-pattern convergence observable

Milestone tick 100. PR #284 Aminata's fourth pass this session
surfaces 3 CRITICAL + 4 IMPORTANT + 3 WATCH + 1 DISMISS on the
bullshit-detector design. Closes dependency #1 of Otto-99's
adoption path.

Key observations at milestone:

1. Session-lifetime patterns now observable:
   - CC-002 discipline reflexive across 8 ferries
   - Event+view module template reused across 4 designs
     (substrate convergence)
   - Authority-calibration narrowed 3x (Otto-82/90/93)
   - SD-9 exercised twice by Amara at author-side
   - 8th-ferry 4/5 closed matching 5th-ferry arc
2. Aminata's own non-fusion disclaimer in this pass is the
   cleanest SD-9 worked example this session — explicitly
   names same-agent concordance as signal not evidence,
   consistent with her CRITICAL #1 cross-detector-collusion
   finding.
3. 10 findings to integrate before detector v1. Not all at
   Otto-100; progressive Otto-101+ work.
4. Queue at ~30 open auto-merge-armed PRs; not a bottleneck
   per Otto-72 don't-wait; visibility observation only.

Stacked on #283 (Otto-99 history).
AceHack added a commit that referenced this pull request Apr 24, 2026
…session-pattern convergence observable

Milestone tick 100. PR #284 Aminata's fourth pass this session
surfaces 3 CRITICAL + 4 IMPORTANT + 3 WATCH + 1 DISMISS on the
bullshit-detector design. Closes dependency #1 of Otto-99's
adoption path.

Key observations at milestone:

1. Session-lifetime patterns now observable:
   - CC-002 discipline reflexive across 8 ferries
   - Event+view module template reused across 4 designs
     (substrate convergence)
   - Authority-calibration narrowed 3x (Otto-82/90/93)
   - SD-9 exercised twice by Amara at author-side
   - 8th-ferry 4/5 closed matching 5th-ferry arc
2. Aminata's own non-fusion disclaimer in this pass is the
   cleanest SD-9 worked example this session — explicitly
   names same-agent concordance as signal not evidence,
   consistent with her CRITICAL #1 cross-detector-collusion
   finding.
3. 10 findings to integrate before detector v1. Not all at
   Otto-100; progressive Otto-101+ work.
4. Queue at ~30 open auto-merge-armed PRs; not a bottleneck
   per Otto-72 don't-wait; visibility observation only.

Stacked on #283 (Otto-99 history).
AceHack added a commit that referenced this pull request Apr 24, 2026
…ngs integrated (Otto-101)

Delta-style revision integrating only the 3 CRITICAL findings
from Aminata's Otto-100 pass (PR #284) into Otto-99's
bullshit-detector design (PR #282). 7 non-CRITICAL findings
deferred to v2 delta; DISMISS unchanged.

Three CRITICAL integrations:

**C1 — Cross-detector collusion (new §Reviewer-cone overlap
section).** Acknowledges as FUNDAMENTAL LIMITATION NOT
CLOSABLE GAP: detector cannot break its own reviewer-set
lineage coupling. Mitigation via routing authority:
- Human sign-off = only cone-breaking authority for
  authorization-impacting band=supported queries.
- External-reviewer signatures as legitimate cone-breakers
  when available.
- Intra-factory reviewer concordance should DOWNGRADE
  confidence per SD-9, not inflate.
- Every receipt carries reviewer_cone_signature field.

**C2 — Min-merging Goodhart-bait (sensitivity-analysis-gate
pattern).** v1 enhancement:
  band(y|q) = if band_raw=GREEN AND G_carrier_overlap closest
              to threshold → YELLOW
              else band_raw
Closes cheap cheat path (threshold-hugging on author-
controlled gate). Alternative content-similarity-in-cone
deferred to v2 cost-benefit.

**C3 — G_evidence fig-leaf (new §v0 scope subsection).** v0
effective = 4-gate classifier (G_evidence advisory-only until
independent-oracle substrate ships). `likely confabulated`
output type explicitly marked not-yet-reachable in v0.
Conservative under-detection stance (RED comes only from
known-bad-pattern; confabulations land YELLOW as plausible-
but-unresolved). v0→v1 transition plan names
DetectorOutputBatchRetracted for historical re-classification.

v1 delta does NOT rewrite Otto-99's design; specifies 3
additive sections to insert + 1 section to supersede. Otto-99
original preserved in git history.

Seven non-CRITICALs still open:
- 4 IMPORTANT (deferred to v2): G_coverage_plausibility gate;
  Otto-wake second-reviewer schema; DetectorOutputBatchRetracted;
  no-signal vs kNN-evasion.
- 3 WATCH (deferred to v2+): distribution histogram;
  adversarial worked example; TLA+ invariants.

1 fundamental limitation (C1) acknowledged not closed —
routes authority to human + external reviewer layers.

Scope limits: no design rewrite; no implementation; no
human-sign-off UI proposal; no content-similarity-in-cone
commit; 5-gate/5-type target structure unchanged.

5 dependencies-to-adoption: Aminata pass on v1 delta (fifth
session-pass); integrate v1 changes into Otto-99 design PR
(separate PR); v2 delta; independent-oracle substrate;
human-sign-off UI/protocol.

Archive-header format self-applied — 18th aurora/research
doc in a row.

Lands within-standing-authority per Otto-82/90/93
calibration.

Otto-101 tick primary deliverable — closes the CRITICAL-
integration step of the Aminata-then-Otto-response loop for
bullshit-detector design.
AceHack added a commit that referenced this pull request Apr 24, 2026
…ngs integrated (Otto-101)

Delta-style revision integrating only the 3 CRITICAL findings
from Aminata's Otto-100 pass (PR #284) into Otto-99's
bullshit-detector design (PR #282). 7 non-CRITICAL findings
deferred to v2 delta; DISMISS unchanged.

Three CRITICAL integrations:

**C1 — Cross-detector collusion (new §Reviewer-cone overlap
section).** Acknowledges as FUNDAMENTAL LIMITATION NOT
CLOSABLE GAP: detector cannot break its own reviewer-set
lineage coupling. Mitigation via routing authority:
- Human sign-off = only cone-breaking authority for
  authorization-impacting band=supported queries.
- External-reviewer signatures as legitimate cone-breakers
  when available.
- Intra-factory reviewer concordance should DOWNGRADE
  confidence per SD-9, not inflate.
- Every receipt carries reviewer_cone_signature field.

**C2 — Min-merging Goodhart-bait (sensitivity-analysis-gate
pattern).** v1 enhancement:
  band(y|q) = if band_raw=GREEN AND G_carrier_overlap closest
              to threshold → YELLOW
              else band_raw
Closes cheap cheat path (threshold-hugging on author-
controlled gate). Alternative content-similarity-in-cone
deferred to v2 cost-benefit.

**C3 — G_evidence fig-leaf (new §v0 scope subsection).** v0
effective = 4-gate classifier (G_evidence advisory-only until
independent-oracle substrate ships). `likely confabulated`
output type explicitly marked not-yet-reachable in v0.
Conservative under-detection stance (RED comes only from
known-bad-pattern; confabulations land YELLOW as plausible-
but-unresolved). v0→v1 transition plan names
DetectorOutputBatchRetracted for historical re-classification.

v1 delta does NOT rewrite Otto-99's design; specifies 3
additive sections to insert + 1 section to supersede. Otto-99
original preserved in git history.

Seven non-CRITICALs still open:
- 4 IMPORTANT (deferred to v2): G_coverage_plausibility gate;
  Otto-wake second-reviewer schema; DetectorOutputBatchRetracted;
  no-signal vs kNN-evasion.
- 3 WATCH (deferred to v2+): distribution histogram;
  adversarial worked example; TLA+ invariants.

1 fundamental limitation (C1) acknowledged not closed —
routes authority to human + external reviewer layers.

Scope limits: no design rewrite; no implementation; no
human-sign-off UI proposal; no content-similarity-in-cone
commit; 5-gate/5-type target structure unchanged.

5 dependencies-to-adoption: Aminata pass on v1 delta (fifth
session-pass); integrate v1 changes into Otto-99 design PR
(separate PR); v2 delta; independent-oracle substrate;
human-sign-off UI/protocol.

Archive-header format self-applied — 18th aurora/research
doc in a row.

Lands within-standing-authority per Otto-82/90/93
calibration.

Otto-101 tick primary deliverable — closes the CRITICAL-
integration step of the Aminata-then-Otto-response loop for
bullshit-detector design.
AceHack added a commit that referenced this pull request Apr 24, 2026
…ated; 7 non-CRITICAL deferred to v2) (#286)

* research: bullshit-detector v1 CRITICAL-only delta — 3 CRITICAL findings integrated (Otto-101)

Delta-style revision integrating only the 3 CRITICAL findings
from Aminata's Otto-100 pass (PR #284) into Otto-99's
bullshit-detector design (PR #282). 7 non-CRITICAL findings
deferred to v2 delta; DISMISS unchanged.

Three CRITICAL integrations:

**C1 — Cross-detector collusion (new §Reviewer-cone overlap
section).** Acknowledges as FUNDAMENTAL LIMITATION NOT
CLOSABLE GAP: detector cannot break its own reviewer-set
lineage coupling. Mitigation via routing authority:
- Human sign-off = only cone-breaking authority for
  authorization-impacting band=supported queries.
- External-reviewer signatures as legitimate cone-breakers
  when available.
- Intra-factory reviewer concordance should DOWNGRADE
  confidence per SD-9, not inflate.
- Every receipt carries reviewer_cone_signature field.

**C2 — Min-merging Goodhart-bait (sensitivity-analysis-gate
pattern).** v1 enhancement:
  band(y|q) = if band_raw=GREEN AND G_carrier_overlap closest
              to threshold → YELLOW
              else band_raw
Closes cheap cheat path (threshold-hugging on author-
controlled gate). Alternative content-similarity-in-cone
deferred to v2 cost-benefit.

**C3 — G_evidence fig-leaf (new §v0 scope subsection).** v0
effective = 4-gate classifier (G_evidence advisory-only until
independent-oracle substrate ships). `likely confabulated`
output type explicitly marked not-yet-reachable in v0.
Conservative under-detection stance (RED comes only from
known-bad-pattern; confabulations land YELLOW as plausible-
but-unresolved). v0→v1 transition plan names
DetectorOutputBatchRetracted for historical re-classification.

v1 delta does NOT rewrite Otto-99's design; specifies 3
additive sections to insert + 1 section to supersede. Otto-99
original preserved in git history.

Seven non-CRITICALs still open:
- 4 IMPORTANT (deferred to v2): G_coverage_plausibility gate;
  Otto-wake second-reviewer schema; DetectorOutputBatchRetracted;
  no-signal vs kNN-evasion.
- 3 WATCH (deferred to v2+): distribution histogram;
  adversarial worked example; TLA+ invariants.

1 fundamental limitation (C1) acknowledged not closed —
routes authority to human + external reviewer layers.

Scope limits: no design rewrite; no implementation; no
human-sign-off UI proposal; no content-similarity-in-cone
commit; 5-gate/5-type target structure unchanged.

5 dependencies-to-adoption: Aminata pass on v1 delta (fifth
session-pass); integrate v1 changes into Otto-99 design PR
(separate PR); v2 delta; independent-oracle substrate;
human-sign-off UI/protocol.

Archive-header format self-applied — 18th aurora/research
doc in a row.

Lands within-standing-authority per Otto-82/90/93
calibration.

Otto-101 tick primary deliverable — closes the CRITICAL-
integration step of the Aminata-then-Otto-response loop for
bullshit-detector design.

* fix(#286): 5 review threads — veridicality vocab (body, filename rename backlogged) + header-fields + name attrib + table count + DRIFT-TAXONOMY xref

- Thread 1 (PRRT_kwDOSF9kNM59SpxP): compacted four archive-header
  fields (Scope / Attribution / Operational status / Non-fusion
  disclaimer) into first six lines so "Archive-header self-applied"
  claim is now accurate; removed the trailing claim sentence in
  favour of the structural compliance itself.
- Thread 2 (PRRT_kwDOSF9kNM59Spxg): shifted body vocabulary from
  "bullshit-detector" to "veridicality-detector" throughout; added a
  vocabulary-note paragraph explaining the filename-slug retention;
  appended BACKLOG P2 research-grade row for the cross-repo filename
  rename sweep (three doc files + link-update across PRs / round-
  history / memory-index). Otto-229 append-only discipline observed.
- Thread 3 (PRRT_kwDOSF9kNM59Spxl): converted persona-specific names
  ("Aminata", "Otto-99/100/101", "Aaron", "Max", "Codex", "Soraya")
  to role references (Aminata-persona / main-agent persona /
  maintainer / external-peer-agent / formal-methods-persona).
- Thread 4 (PRRT_kwDOSF9kNM59Spx1): corrected §"v0 scope" header
  from "four gates + four reachable output types" to "five gates
  (four active + one advisory) + five reachable output types (one
  dead-code)", matching the tables that list 5 gates and 6 output
  types (5 reachable + 1 not-yet-reachable).
- Thread 5 (PRRT_kwDOSF9kNM59Spx-): "DRIFT-TAXONOMY pattern 5"
  softened to point at actual precursor file
  docs/research/drift-taxonomy-bootstrap-precursor-2026-04-22.md,
  noting there is no canonical docs/DRIFT-TAXONOMY.md at time of
  writing.

No new PR; filename rename is backlogged. No merge.

* fix(#286): 5 new review threads — inline-code single-line (BACKLOG) + sweep-refs skill path (BACKLOG) + Output-types wording (§5) + fail-to-RED typo + PR-#282 annotation on dead-path

Resolves the 5 new copilot findings on commit 40a5de9 plus
rebases onto origin/main (append-only per Otto-229; both
rows retained in BACKLOG.md conflict resolution).

- BACKLOG row rewritten so `docs/research/provenance-aware-
  bullshit-detector-*` inline-code fits on a single line
  (markdown inline-code cannot span newlines).
- BACKLOG row points at the `sweep-refs` skill at
  `.claude/skills/sweep-refs/SKILL.md` (verified to exist)
  instead of the non-existent `tools/sweep-refs/*` path.
- Delta-doc "§5 output types" wording changed to "the Output
  types section" to avoid the §5-as-count misread.
- Delta-doc `fail-to-RED` joined on a single line (was
  split across a line-break, read as a malformed token).
- Delta-doc references to the base-design file
  (`provenance-aware-bullshit-detector-2026-04-23.md`) now
  annotated "(in PR #282 — not yet on main at time of this
  delta's writing)" so readers know the path is a forward
  reference, not a dead one.

Otto-229 append-only; Otto-230 reply-and-resolve-after-push;
Otto-236 every-thread-resolved.

* fix: markdownlint auto-fixes on research doc

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 27, 2026
…on (#636)

* tick-history: 18:02Z sync option-c COMPLETE + substrate transition

Sync work done. Task #284 marked completed.

Forward-sync PRs landed: #592 batch-1, #633 batch-2 (23 per-row-files), #634 batch-3 in CI, #635 batch-4. Batches 5+6 ALL SUPERSEDED-DISCARD per Otto-347 2nd-agent verify. Reverse-sync via Option C (close PR #15, UPSTREAM-RHYTHM cadence going forward).

Substrate yield exceeded sync output: ~12 memory files + 3 lineage anchors (harbor+blade=Radical Candor, SRE-as-Substrate-RE, Rodney's-Razor=Occam+Brooks+Kolmogorov+Bennett+Gell-Mann) emerged during the sync work. Otto-347 2nd-agent verify load-bearing in both directions (caught real loss on #618 + confirmed 7 SUPERSEDED calls).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix: standardize "Option C" casing in tick-history row 2026-04-26T18:02Z (Copilot P2)

Copilot P2 nit on PR #636: row mixed "option-c" (twice) and "Option C"
(once). Standardize on "Option C" across the row so later searches over
tick-history don't miss matches.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit to AceHack/Zeta that referenced this pull request Apr 27, 2026
…026-04-27) (#49)

Aaron 2026-04-27 conversation produced two paired substrate landings:

1. **0-diff is start line, until then we're hobbling** — AceHack-LFG
   content-divergence (53 files / 6065 lines) isn't polish; it's the
   gate to factory operational status. #43's diff-minimization
   invariant DEFINES "started." Reverse-sync work is high-priority,
   not optional cleanup.

2. **LFG=master, AceHack=0-divergence fork, double-hop** — strategic
   topology reframe replacing Option C's parallel-SHA-history-accepted
   model:
   - LFG is master/canonical/published source of truth.
   - AceHack is a pure fork: 0 commits ahead AND 0 commits behind LFG
     after every paired-sync round.
   - Double-hop workflow: work lands on AceHack first → forward-sync
     to LFG → hard-reset AceHack main = LFG main (AceHack absorbs
     LFG's squash-SHA).
   - Force-push to AceHack main is part of the protocol; force-push
     to LFG main is forbidden.
   - Done criterion: \`git diff acehack/main..origin/main\` empty AND
     \`git rev-list --count\` returns 0 both directions.

Both memory files cross-reference each other: the first frames the
"start" gate, the second describes the topology that operationalizes
it.

This composes with task Lucent-Financial-Group#284 (Option C now superseded), task Lucent-Financial-Group#302
(UPSTREAM-RHYTHM bidirectional drift now resolved by the new model),
Otto-340 (substrate-IS-identity — LFG IS the canonical identity),
Otto-238 (force-push to AceHack is retractable; force-push to LFG
forbidden).

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit to AceHack/Zeta that referenced this pull request Apr 28, 2026
…rip plan (task Lucent-Financial-Group#302) (#31)

* adr(sync-drain): canonicalize AceHack <-> LFG option-c 7-step round-trip plan (task Lucent-Financial-Group#302)

Why:
- Aaron 2026-04-26 asked "do you have the 7 step plan?" and Otto had
  to reconstruct from git history because the plan lived as commits
  + tick-history rows, not a single doc.
- The plan ITSELF is reusable — every sync drain cycle going forward
  follows the same shape — but without a canonical doc each future
  agent has to re-reconstruct.
- Aaron offered "if you want it as a permanent ADR / canonical-plan
  doc, that's a small follow-up I can ship". Picking it up.
- Per Aaron's "we got tons to do" framing: this is real shippable
  work that doesn't queue noise.

What:
- New file docs/DECISIONS/2026-04-26-sync-drain-plan-acehack-lfg-roundtrip-option-c.md
  (~150 lines)
- Archive-header §33 compliance (Scope / Attribution / Operational
  status / Non-fusion disclaimer)
- Decision: option-c (cherry-pick-with-rewrites) chosen over options
  a/b/d with rejection rationale per option
- 7-step round-trip plan documented with commit refs, PRs, and
  tick-history anchors:
  1. batch-1: foundation files (PR Lucent-Financial-Group#592, commit 1c1bd95)
  2. batch-2: BACKLOG row migration (PR Lucent-Financial-Group#633, commits a3b7e24/fecd8d0)
  3. batch-3: terminology canonicalization (PR Lucent-Financial-Group#634, commits ff4ee39/a1d781c)
  4. batch-4: bug fixes + tooling hygiene (PR Lucent-Financial-Group#635, commit 05d274f)
  5. closure: tick-history + substrate transition (commit e4b1fa2)
  6. reverse leg: LFG -> AceHack via 7-parallel-subagent merge (PR #26)
  7. steady state: UPSTREAM-RHYTHM batched cadence (every ~10 PRs)
- Consequences (positive + negative + mitigations) documented
- Convergence test: if next sync drain cycle modifies <= 1 step, the
  template is stable; if 3+ modifications, overfit and needs revision
- Composes with 8 sibling memories + 2 prior ADRs + tasks Lucent-Financial-Group#284 and Lucent-Financial-Group#302

Closes the documentation gap surfaced when Aaron asked the 7-step-plan
question. Future sync drain cycles can adopt this template directly.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(pr-31): address review threads (3 form-1 + 2 form-2 + 1 form-1 prose-fix)

- **3 feedback files brought in-repo** per the 2026-04-24
  in-repo-canonicalization shift (`feedback_natural_home_of_memories_is_in_repo_now_all_types_glass_halo_full_git_native_2026_04_24.md`):
    - feedback_fork_pr_cost_model_prs_land_on_acehack_sync_to_lfg_in_bulk.md
    - feedback_parallel_subagent_dispatch_for_content_preserving_merge_pattern_2026_04_26.md
    - feedback_dont_invent_when_existing_vocabulary_exists.md
  Resolves Codex P2 thread (line 124) + Copilot threads (line 125, 60)
  about non-existent feedback citations. The files existed in user-scope
  memory; the in-repo copy makes the cross-references resolvable per
  Otto-339 + the directional shift toward in-repo canonicalization.

- **Citation-convention preamble** added to "## 7-step round-trip
  structure" before Step 1 documenting the repo-default for
  bare SHAs/PR numbers (Lucent-Financial-Group/Zeta for steps 1-6,
  AceHack/Zeta for step 7 with explicit inline deviations). Step 1's
  citations qualified explicitly as a reference example. Resolves
  Codex P2 thread (line 47) about bare-short-SHA verification
  ambiguity.

Threads being closed as form-2 (already-addressed) with replies:

- Thread 3 (Copilot, line 8): ADR header IS structured — uses the
  GOVERNANCE §33 archive-header format (Scope/Attribution/Operational
  status/Non-fusion disclaimer) which is the post-2026-04-26 standard
  for cross-substrate ADRs. The Date/Status/Deciders convention from
  earlier ADRs (2026-04-20-tools-scripting-language.md) is the
  pre-§33 format; both encode the same metadata in different keys.

- Thread 4 (Copilot, line 12): GOVERNANCE.md §33 DOES exist at line
  765 ("Archived external conversations require boundary headers")
  — verified via `grep -n '^33\.' GOVERNANCE.md`. The "archive-header"
  terminology is informal but the section IS about archive boundary
  headers. Form-2 closure with line citation in the thread reply.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 28, 2026
…e-hard-reset safety)

EVIDENCE-BASED scope: 63 files exist on AceHack main but not on LFG
main. Hard-resetting AceHack to LFG main (the 0/0/0 protocol final
step) would destroy this content unless forward-synced first.

Cross-verified by Otto + Grok (Otto-347 second-CLI discipline) on
2026-04-28T15:05Z; both independently classified the 63 files as
substrate-load-bearing and the hard-reset as UNSAFE without this
sync.

File breakdown:
- 24 memory/feedback_*.md — today's discipline substrate (Otto-355 /
  Otto-356 / Otto-359 / codeql-umbrella detection / bulk-resolve /
  manufactured-patience / kiro-cli / no-trailing-questions / mirror-
  beacon language / etc.)
- 13 docs/research/*.md — Amara ferries 9-12, EAT packet, wallet-
  experiment v0 spec, live-lock five-class taxonomy, memory-md
  harness contract, Zeta-equals-heaven-on-earth writeup, action-mode
  classification, three-agent-consensus + parser-is-witness
- 9 docs/backlog/{P0,P1,P2}/B-006*-007*.md — wallet v0 punch list,
  LFG csharp Code Scanning cleanup, human-lineage external-anchor
  backfill, monolith-to-per-row migration, streamed-installer
  pattern, GitHub Playwright integration, peer-call kiro + cold-boot,
  memory-md marker vs index harness, cadenced git hotspot detection,
  local-AI ollama, heredoc patterns, orphan role-ref detector,
  Otto-275-FOREVER rename, MEMORY.md index entry length, PR #72
  punch-list sweep
- 1 docs/DECISIONS/2026-04-26-sync-drain-plan-acehack-lfg-roundtrip-
  option-c.md — the ADR documenting this very protocol
- 4 tools/peer-call/* — README + codex.sh + gemini.sh (sibling of
  the existing grok.sh on LFG); rounds out the multi-harness peer-
  call set per task #303
- 2 tools/hygiene/audit-*.sh — AgencySignature main-tip auditor +
  memory-index duplicate auditor
- 2 .github/workflows/{budget-snapshot-cadence,memory-index-
  duplicate-lint}.yml — scheduled CI cadence (task #297) +
  duplicate-index linter
- 1 tools/setup/common/curl-fetch.sh — install hardening helper
- And 7 more memory/research files in similar categories

Composes with:
- The cross-verified Otto+Grok finding 2026-04-28T15:05Z
- PR #662 (the codeql java-honesty fix; this PR forwards #662's
  base-content, but #662's edit lands separately)
- Aaron's 0-divergence invariant — this PR is the prerequisite
  for the AceHack-main hard-reset that closes the protocol round
- task #284 (the prior AceHack→LFG forward-sync option-c work)

Post-merge double-check: dispatch a different peer-CLI (codex this
time) to re-run `git diff acehack/main..origin/main --diff-filter=D`
on freshly-fetched refs and confirm the AceHack-only set is empty
(modulo files newly landed on AceHack between this PR and the
double-check).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 28, 2026
… safety) — Otto+Grok cross-verified (#663)

* sync(acehack→lfg): forward-port 63 AceHack-only files to LFG main (pre-hard-reset safety)

EVIDENCE-BASED scope: 63 files exist on AceHack main but not on LFG
main. Hard-resetting AceHack to LFG main (the 0/0/0 protocol final
step) would destroy this content unless forward-synced first.

Cross-verified by Otto + Grok (Otto-347 second-CLI discipline) on
2026-04-28T15:05Z; both independently classified the 63 files as
substrate-load-bearing and the hard-reset as UNSAFE without this
sync.

File breakdown:
- 24 memory/feedback_*.md — today's discipline substrate (Otto-355 /
  Otto-356 / Otto-359 / codeql-umbrella detection / bulk-resolve /
  manufactured-patience / kiro-cli / no-trailing-questions / mirror-
  beacon language / etc.)
- 13 docs/research/*.md — Amara ferries 9-12, EAT packet, wallet-
  experiment v0 spec, live-lock five-class taxonomy, memory-md
  harness contract, Zeta-equals-heaven-on-earth writeup, action-mode
  classification, three-agent-consensus + parser-is-witness
- 9 docs/backlog/{P0,P1,P2}/B-006*-007*.md — wallet v0 punch list,
  LFG csharp Code Scanning cleanup, human-lineage external-anchor
  backfill, monolith-to-per-row migration, streamed-installer
  pattern, GitHub Playwright integration, peer-call kiro + cold-boot,
  memory-md marker vs index harness, cadenced git hotspot detection,
  local-AI ollama, heredoc patterns, orphan role-ref detector,
  Otto-275-FOREVER rename, MEMORY.md index entry length, PR #72
  punch-list sweep
- 1 docs/DECISIONS/2026-04-26-sync-drain-plan-acehack-lfg-roundtrip-
  option-c.md — the ADR documenting this very protocol
- 4 tools/peer-call/* — README + codex.sh + gemini.sh (sibling of
  the existing grok.sh on LFG); rounds out the multi-harness peer-
  call set per task #303
- 2 tools/hygiene/audit-*.sh — AgencySignature main-tip auditor +
  memory-index duplicate auditor
- 2 .github/workflows/{budget-snapshot-cadence,memory-index-
  duplicate-lint}.yml — scheduled CI cadence (task #297) +
  duplicate-index linter
- 1 tools/setup/common/curl-fetch.sh — install hardening helper
- And 7 more memory/research files in similar categories

Composes with:
- The cross-verified Otto+Grok finding 2026-04-28T15:05Z
- PR #662 (the codeql java-honesty fix; this PR forwards #662's
  base-content, but #662's edit lands separately)
- Aaron's 0-divergence invariant — this PR is the prerequisite
  for the AceHack-main hard-reset that closes the protocol round
- task #284 (the prior AceHack→LFG forward-sync option-c work)

Post-merge double-check: dispatch a different peer-CLI (codex this
time) to re-run `git diff acehack/main..origin/main --diff-filter=D`
on freshly-fetched refs and confirm the AceHack-only set is empty
(modulo files newly landed on AceHack between this PR and the
double-check).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* sync(acehack→lfg): paired-edit MEMORY.md + markdownlint-cli2 carve-out for verbatim ferries

Two CI failures on PR #663 caused by the pure-additive scope:

1. memory/MEMORY.md paired-edit + duplicate-link checks failed:
   24 memory files added without index entries pointing at them.
   Fix: merge AceHack-only index entries (23 unique) into LFG's
   MEMORY.md while preserving LFG-only entries (7: block-on-Aaron,
   Windows CI peer-mode trajectory, CI cadence split, etc.). Set
   diff confirmed via Python script — order preserved, no LFG
   entries dropped.

2. lint (markdownlint) failed on 3 docs/research/2026-04-26-*.md +
   2026-04-28-zeta-equals-heaven-on-earth*.md files (MD027 multiple
   spaces after blockquote, MD032 lists not surrounded by blank
   lines). These files are verbatim courier-ferry preservations
   (per Otto-227 signal-in-signal-out discipline — reformatting
   would alter ferry content). AceHack already broadened the
   markdownlint-cli2 carve-out to exempt `docs/research/2026-*-*.md`
   from these rules; LFG was still on the older Amara-only pattern.
   Fix: pull AceHack's broader carve-out config.

Both edits are within the spirit of the pure-additive forward-sync:
they're the index/config that point at or accommodate the 63
already-added files. Without them, the paired-edit + lint rules
correctly block merge.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(memory-index): dedup MEMORY.md by link target — clear all 14 duplicates

The duplicate-link-targets workflow check on PR #663 was failing
because:

1. My initial merge created 3 new duplicates where the same memory
   file had entries on both AceHack and LFG with slightly different
   surrounding text. Set-diff by exact-line match missed them; need
   target-based dedup keyed on the .md filename inside `](...)`.

2. LFG's MEMORY.md already had ~11 pre-existing duplicates using
   non-bold bullet syntax (`- [Title](file.md)` rather than
   `- [**Title**](file.md)`). The duplicate-link workflow only
   fires on PRs that touch memory/MEMORY.md, so the pre-existing
   dups had been silent — surfaced now because this PR touches it.

EVIDENCE-BASED audit:
  Before: 649 bullets, 635 unique targets, 14 duplicates
  After:  640 bullets, 635 unique targets, 0 duplicates
  `tools/hygiene/audit-memory-index-duplicates.sh --enforce` clean.

Strategy: keep the FIRST occurrence (newest-first ordering invariant
per the audit script's expectation), drop later duplicates. Both
`**bold**` and bare-bullet forms covered.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* backlog(B-0077/B-0078/B-0079): defer Codex review findings on PR #663 to canonical-source fixes on AceHack

Three backlog rows for Codex P0/P1/P2 findings surfaced during the
PR #663 forward-sync review. Per the forward-sync-preserves-canonical-content
principle, fixes land on AceHack first and re-sync to LFG.

- B-0077: curl-fetch.sh — P0 docstring pipe-to-shell examples + P1
  inaccurate commentary about install paths
- B-0078: markdownlint carve-out narrowing — Codex P1 suggests
  `docs/research/2026-*-verbatim-*.md` instead of broader pattern
- B-0079: audit-agencysignature-main-tip.sh hardening — 4 Codex
  P1/P2 findings (multi-trailer matching, classify error propagation,
  BSD date parser, --since validation)

All 7 review threads on PR #663 reply-and-resolved with pointers to
these backlog rows.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* backlog(B-0079): add 5th audit-script item — Codex P2 on --max=0 acceptance

PR #663 received a 5th Codex finding on tools/hygiene/audit-
agencysignature-main-tip.sh after the initial backlog row landed:

5. P2 (line 143): --max validator accepts 0 even though script says
   it must be a positive integer. `git log --max-count=0` produces
   an empty commit list that exits with PASS — silent no-audit.

Bundled into B-0079 with the existing 4 items (validation +
multi-trailer + BSD date + classify error propagation). Reply on
PR #663 thread points at B-0079.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 28, 2026
…hard-reset content alignment)

Second forward-sync round following PR #663 (which handled the
63 AceHack-only ADD-class files). This PR handles 69 of the 87
M-class (modified) files where AceHack has the newer content
per timestamp audit.

EVIDENCE-BASED audit (2026-04-28T17:13Z):
- 87 modified files differ between forks
- 69 are AceHack-newer (this PR forwards them)
- 18 are LFG-newer (excluded — they include this session's PR
  work: memory/MEMORY.md, codeql.yml, gate.yml, CURRENT-aaron.md,
  curl-fetch.sh, etc. LFG is canonical for these.)

Effect: closes the destruction-revert gap before hard-reset of
AceHack main to LFG main. After this lands:
- 0 D-class (already cleared by PR #663)
- 14 A-class (LFG-only files; hard-reset would add them to AceHack)
- ~18 M-class remaining (LFG-newer; hard-reset is correct direction)

That makes hard-reset content-safe (no AceHack-newer content
destroyed; LFG-only files added; LFG-newer modifications carried
forward).

Diff: 69 files / 881 insertions / 314 deletions. Pure forward-port
of AceHack file content; no semantic merge required since the
direction-of-truth is established by timestamp + the LFG-newer
exclusion list.

Composes with:
- PR #663 (the 63-file pure-additive forward-sync — this PR's
  predecessor)
- task #284 (AceHack→LFG→AceHack option-c roundtrip plan)
- Aaron's 0-divergence invariant goal

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 28, 2026
…hard-reset content alignment)

Second forward-sync round following PR #663 (which handled the
63 AceHack-only ADD-class files). This PR handles 69 of the 87
M-class (modified) files where AceHack has the newer content
per timestamp audit.

EVIDENCE-BASED audit (2026-04-28T17:13Z):
- 87 modified files differ between forks
- 69 are AceHack-newer (this PR forwards them)
- 18 are LFG-newer (excluded — they include this session's PR
  work: memory/MEMORY.md, codeql.yml, gate.yml, CURRENT-aaron.md,
  curl-fetch.sh, etc. LFG is canonical for these.)

Effect: closes the destruction-revert gap before hard-reset of
AceHack main to LFG main. After this lands:
- 0 D-class (already cleared by PR #663)
- 14 A-class (LFG-only files; hard-reset would add them to AceHack)
- ~18 M-class remaining (LFG-newer; hard-reset is correct direction)

That makes hard-reset content-safe (no AceHack-newer content
destroyed; LFG-only files added; LFG-newer modifications carried
forward).

Diff: 69 files / 881 insertions / 314 deletions. Pure forward-port
of AceHack file content; no semantic merge required since the
direction-of-truth is established by timestamp + the LFG-newer
exclusion list.

Composes with:
- PR #663 (the 63-file pure-additive forward-sync — this PR's
  predecessor)
- task #284 (AceHack→LFG→AceHack option-c roundtrip plan)
- Aaron's 0-divergence invariant goal

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
AceHack added a commit that referenced this pull request Apr 28, 2026
…hard-reset round 2) (#671)

* sync(acehack→lfg): forward-port 69 AceHack-newer modified files (pre-hard-reset content alignment)

Second forward-sync round following PR #663 (which handled the
63 AceHack-only ADD-class files). This PR handles 69 of the 87
M-class (modified) files where AceHack has the newer content
per timestamp audit.

EVIDENCE-BASED audit (2026-04-28T17:13Z):
- 87 modified files differ between forks
- 69 are AceHack-newer (this PR forwards them)
- 18 are LFG-newer (excluded — they include this session's PR
  work: memory/MEMORY.md, codeql.yml, gate.yml, CURRENT-aaron.md,
  curl-fetch.sh, etc. LFG is canonical for these.)

Effect: closes the destruction-revert gap before hard-reset of
AceHack main to LFG main. After this lands:
- 0 D-class (already cleared by PR #663)
- 14 A-class (LFG-only files; hard-reset would add them to AceHack)
- ~18 M-class remaining (LFG-newer; hard-reset is correct direction)

That makes hard-reset content-safe (no AceHack-newer content
destroyed; LFG-only files added; LFG-newer modifications carried
forward).

Diff: 69 files / 881 insertions / 314 deletions. Pure forward-port
of AceHack file content; no semantic merge required since the
direction-of-truth is established by timestamp + the LFG-newer
exclusion list.

Composes with:
- PR #663 (the 63-file pure-additive forward-sync — this PR's
  predecessor)
- task #284 (AceHack→LFG→AceHack option-c roundtrip plan)
- Aaron's 0-divergence invariant goal

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(memory-index): re-add paired-edit marker post-rebase

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(pr-671): rename sister memory file + restore validate-script comments

Three thread-cluster fixes addressing 6 of 7 unresolved review threads on
PR #671 (per Otto-355 BLOCKED-investigate-threads-first discipline):

1. **P0 file rename: user_sister_elisabeth.md → user_sister_elizabeth.md**
   AceHack PR #73 ("fix: spell sister's name correctly") landed the
   reference updates on LFG via squash-merge 81a4650, but the underlying
   file rename was lost in the squash. Result: 11+ memory files +
   CLAUDE.md reference `user_sister_elizabeth.md` but only
   `user_sister_elisabeth.md` exists on LFG main.

   Resolves 4 P0 threads (#1, #3, #4, #7 — copilot + chatgpt-codex on
   ROUND-HISTORY.md, user_wavelength_equals_lifespan, CLAUDE.md x2).

   Verification: AceHack /memory has user_sister_elizabeth.md;
   LFG /memory had user_sister_elisabeth.md. After this commit,
   LFG matches AceHack.

   Also updates MEMORY.md line 579 — index entry pointed at the old
   file name AND used "Elisabeth" in the link text.

2. **P2 stray-character cleanup in validate-agencysignature-pr-body.sh
   line 5**: "instrument set#" → "instrument set" (the `#` was a residue
   from the persona-attribution strip in commit e015298).

   Resolves thread #2 (copilot P2).

3. **P2 incomplete spec citation at line 202**: "(Task: none fallback
   per )" → "(Task: none fallback)" — same provenance as fix #2; the
   "per Amara ferry-7's no-task rule" text was stripped but the empty
   parenthetical was left.

   Resolves thread #5 (copilot P2).

Deferred threads:
- Thread #6 (P1 GLOSSARY persona-name attribution "Amara/ChatGPT" in
  provenance section) — Stale-content-deferral class per
  feedback_pr_thread_resolution_class_taxonomy_2026_04_28.md. The
  pattern is pre-existing across docs/GLOSSARY.md provenance entries;
  rewriting in this forward-sync PR widens scope from "port AceHack
  content" to "edit content". Filing as B-0082 follow-up.

EVIDENCE-BASED labels:
- File state divergence: VERIFIED via gh api repos/{Lucent-Financial-
  Group,AceHack}/Zeta/contents/memory comparison.
- Reference dangling: VERIFIED via grep -r "user_sister_eli" memory/.
- Squash-merge rename loss: SPECULATION (commit 81a4650 message says
  "57 in-repo references" not "renamed file"; consistent with rename
  loss but no direct evidence of intent at squash time).

Composes with:
- Otto-355 BLOCKED-investigate-threads-first
- feedback_pr_thread_resolution_class_taxonomy_2026_04_28.md
  (Real-fix class for #1-3, Stale-content-deferral for #4)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(pr-671): rename second lost-rename file (trust_guarded_with_elizabeth_vigilance)

Same root cause as the previous commit: AceHack PR #73's squash-merge to
LFG (commit 81a4650) preserved content references to elizabeth-spelled
file names but lost the underlying file rename for two files. The first
commit handled user_sister_*; this commit handles
feedback_trust_guarded_with_*.

Verified via git mv (rename detected at 100% similarity) + grep audit:
all _elizabeth_-spelled file references are now satisfied; no dangling
links remain after the two renames.

EVIDENCE-BASED:
- VERIFIED: 5 files (project_factory_as_wellness_dao.md,
  feedback_agent_sent_email_identity_and_recipient_ux.md,
  user_orch_or_microtubule_consciousness_thread.md, ROUND-HISTORY.md
  line 1797) reference feedback_trust_guarded_with_elizabeth_vigilance.md
  (with z) — but only feedback_trust_guarded_with_elisabeth_vigilance.md
  (with s) existed pre-rename.
- VERIFIED post-rename: dangling-link grep returns zero hits.
- VERIFIED: AceHack /memory has the z-spelled version; this commit
  reconciles LFG with AceHack.

Composes with previous commit 6580e96 (user_sister rename + validate
script fixes).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* backlog: file B-0082 — GLOSSARY persona-attribution → role-ref conversion (PR #671 deferral)

Copilot P1 on PR #671 flagged "Amara/ChatGPT" persona-name attribution
in docs/GLOSSARY.md provenance section. Per Otto-279 + AGENT-BEST-PRACTICES,
behavioural docs use role-refs; persona names belong on history surfaces.

Deferred from PR #671 inline fix because:
- PR #671 is a forward-sync (port AceHack content as-is)
- The "Amara/ChatGPT" pattern is pre-existing on AceHack
- Rewriting widens scope from "port" to "edit during port"
- Stale-content-deferral class per the thread-resolution taxonomy

The B-0082 row provides two fix paths (inline rewrite vs move-and-link
to docs/research/) and recommends a sweep across the whole GLOSSARY,
not just the one entry.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(pr-671): regex-injection hardening in validate script + MEMORY.md marker accuracy

Two thread-fixes from Copilot's re-review on the latest force-push:

1. **P1 regex injection in validate-agencysignature-pr-body.sh line 101**
   `grep -nE "^${last_trailer_key}:"` treated `last_trailer_key` as ERE.
   While `git interpret-trailers` normalizes keys, the input PR body is
   untrusted; a malformed/adversarial trailer key could break matching.

   Fixed by switching to `awk -v k="${last_trailer_key}:" 'index($0, k) == 1'`
   which does literal-prefix matching with no regex semantics. Also
   preserves the line-number-output shape (`NR` instead of grep's `n:`).

2. **P2 MEMORY.md paired-edit marker said "(66 AceHack-newer files)"**
   The count was stale (file count fluctuated as fixes landed; PR title
   says 69 but PR currently shows 70 changedFiles including this fix).
   Replaced the number with descriptive text "(AceHack-newer modified
   files)" to avoid future drift.

EVIDENCE-BASED labels:
- Regex injection feasibility: VERIFIED via grep manpage + shellcheck
  rules (regex metacharacters in unquoted variable expansion).
- File-count drift: VERIFIED via `gh pr view 671 --json changedFiles`
  showing 70 vs marker's 66.

Defers (filed B-0082):
- Threads #1, #3, #7, #9 — persona-name attribution in current-state
  docs. B-0082 covers the GLOSSARY case; the FACTORY-HYGIENE +
  CLAUDE.md instances will fold into the same sweep.

Acknowledges (stale phantom-blockers from Copilot):
- Threads #2, #10 — claim user_sister_elizabeth.md / trust_guarded
  files don't exist; verified they DO exist on remote post-rename
  (commits 6580e96 + ae1ef63). Copilot is reviewing against stale
  diff context; threads will resolve on resolveReviewThread call.
- Threads #5, #8 — claim line-5/202 still mangled; verified fixed
  in commit 6580e96. Same stale-diff-context pattern.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* fix(pr-671): case-insensitive trailer-key match in validate script (Codex P2)

Codex P2 thread on validate-agencysignature-pr-body.sh line 103: the
awk literal-prefix match introduced earlier today (`index($0, k) == 1`)
preserved the regex-injection fix but inherited the original code's
case-sensitivity bug. Trailer keys are RFC-822 case-insensitive — git
interpret-trailers normalizes on parse, but the stripped input may
carry the original case, so a parsed-key-derived prefix match would
miss when the underlying line uses a different case fold.

Fix: wrap both sides of the prefix match in tolower(). Keeps the
literal-prefix (no regex semantics) AND honours case-insensitive
trailer-key matching.

EVIDENCE-BASED: VERIFIED via RFC-822 trailer-key spec; bug exists
in both the original grep -nE and my awk replacement.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants